The present invention pertains to cellular telephone communication systems. More particularly, the present invention pertains to a communication method protocol for a voice/data communication link between a vehicle and a remotely located response center or monitoring station.
With the rapid explosion in the use of cellular telephone communications systems in the United States, it is not uncommon to find vehicles equipped with a cellular telephone communication system. Such vehicle mounted cellular telephone communication systems are not only used for voice communication between the driver of the vehicle and a remote monitoring system but are also used to provide data describing the location of the vehicle, data concerning events occurring at the vehicle and data describing the condition of the vehiclexe2x80x94xe2x80x94to the remote monitoring station. Such data may include the latitude and longitude of the vehicle, the condition or state of any of the numerous operating systems which are resident on a motor vehicle, and the occurrence of an event such as theft of the vehicle, a vehicle fire, an accident or an alarm condition, such as a medical emergency, sensed by the driver.
When a cellular telephone communication system is used to provide the location of the vehicle such location is normally provided by using the signals transmitted by one or more orbiting satellites. Such orbiting satellites are part of the Global Positioning System (GPS). The signals received by the vehicle from the orbiting GPS satellites are translated by a tracking module mounted in the vehicle. The tracking module converts signals received from one or more orbiting GPS satellites into latitude and longitude data. In addition to the transmission of location data, there is also a critical need to assure that voice communication between an operator at the remote monitoring station and the occupants of the vehicle is not overly hampered by the transmission of data.
Therefore, the design criteria for a cellular communication system between a vehicle and a remote monitoring station should include easily understandable voice conversation with minimal interruption by the transmission of data, assurance of data integrity, determination of loss of the communication link, user-friendly, reliable operation, ability to function in high noise environments having multiple communication link impairments, and recognition of repeated commands in either direction.
The preferred embodiment of the data transmission communication method protocol of the present system utilizes a half duplex, frequency shift keying modulation technique. When an information-bearing data burst is to be sent from the tracking module on board the vehicle, the voice communication is first muted. The voice communication that originates in the vehicle is either from the hands free microphone or the handset microphone portion of the cellular telephone communication system.
When it is desired to send information-bearing data over the communication link, such as when an event occurs in a vehicle warranting rapid communication between the vehicle and the remote response center, the system on board the vehicle initiates a call. When the remote response center detects an incoming call from a vehicle mounted communication system it answers the call and sends a greeting message data burst back to the tracking module in the vehicle. This message is an invitation to the tracking module on the vehicle to begin transmitting data, for example, location and vehicle status data. The tracking module in the vehicle responds with an acknowledgment message which signals that it will now begin to send packets of data to the remote response center.
The information-bearing data packet that is sent from the vehicle between the extended periods of voice communication begins with a Start of Header byte. The Start of Header byte is followed by a Frame Type byte which in turn is followed by a Byte Count and Sequence Number byte. Following the Byte Count and Sequence Number byte are one or more Data Fields which are used to transmit either the vehicle position location information or other event/condition information from the vehicle. The end of the Data Packet is signaled by the transmission of two Cyclic Redundancy Check (CRC) Error Detection bytes. Since information-bearing data packets can occur at random time intervals during a communication link, the receiver does not know when to expect an information-bearing data packet. Therefore, the receiver is continually looking for the receipt of an information-bearing data packet. Since voice communication is demodulated into data, the receiver is constantly receiving a stream of non-information-bearing data generated by the voice transmission. Such non-information-bearing data, based on voice transmission, is meaningless. However, as soon as the receiver senses that it has received a valid Start of Header byte, a Frame Type byte, and Byte Count, it automatically mutes the voice being transmitted to the cellular telephone. This prevents subsequent voice transmission from corrupting the remainder of the information-bearing data stream which follows.
Once the stream of information-bearing data containing location information or event/condition information has been received, its validity must be checked. If it is a good message containing location or event/condition information, then an Acknowledgment (ACK) message is assembled. The Acknowledgment (ACK) message also has the same type of Cyclic Redundancy Check and Sequence byte corruption protection. Once the information-bearing data burst/Acknowledgment (ACK) message exchange has been completed, the muting of the voice mode transmission is turned off at both ends of the communication link and two-way voice communication is resumed. If the error detection sequence of the transmission indicates that the information-bearing data packet transmission has been corrupted, then the transmitted information-bearing data packet is ignored and the muting of voice transmission is turned off. Negative Acknowledgment (NAK) messages are never transmitted in response to corrupted data.
The foregoing communication protocol is a master/slave type protocol. Ordinarily the tracking module mounted on the vehicle initiates the communication link. The remote response center accepts the location or event/condition information data from the tracking module on the vehicle and then acknowledges the message. This arrangement prevents a collision of data transmission on the communication link. If both ends of the communications link transmitted data simultaneously, no data would get through. Therefore, if data communication is initiated by the tracking module in the vehicle, transmission collisions do not occur. The most notable exception to this rule is when there is an invitation to transmit data command originating at the remote response center to the tracking module on the vehicle. In this case, the tracking module is normally silent so that no collision of data transmissions occurs.
Another case where the response center initiates a communication transaction is the xe2x80x9c(information-bearing) data on demandxe2x80x9d method of operation when the tracking module can be put into a 30 second automatic information-bearing data update mode. This information-bearing data update mode is entered because urgent voice communication is needed without any information-bearing data interference. During the 30 second automatic update mode the tracking module is silent; that is no information-bearing data is transmitted. If a position update is needed before the 30 seconds of voice communication elapses, the operator at the response center can initiate a xe2x80x9c(information-bearing) data on demandxe2x80x9d command. The response center then autonomously sends this xe2x80x9c(information-bearing) data on demandxe2x80x9d request to the tracking module in the vehicle. The tracking module recognizes this xe2x80x9c(information-bearing) data on demandxe2x80x9d request and responds by sending an information-bearing data packet to the response center. If the response center receives this information-bearing data update without any corruption of the information-bearing data the response center sends an Acknowledgment message to the tracking module. This reversal of the roles in master and slave usually does not result in any data transmission collision. However, if it does, the Sequence Number byte will prevent confusion from occurring.
The Byte Count tells the receiver how long the message should be and where the Cyclic Redundancy Checks bytes are located. The purpose of the Sequence Number byte is to number the messages. This numbering of the information-bearing data packets is to determine if an information-bearing data packet that has been received is either a new information-bearing data packet or one that has been retransmitted. The packet of position information data is never retransmitted because it is either not imperative to assure that this particular position information data packet is received. Because the position information packets occur at regular intervals, there is little change in the updated vehicle location information. Thus, the next scheduled information-bearing data packet will have updated position data instead of old position data. Therefore, unlike a data file transfer, it is not necessary for each and every information-bearing data packet to get through to the remote response center. This tolerance of errors in the link without retransmission is a fundamental departure from standard data communications protocols. This will be explained in more detail later.
If the system is in a mode where position data is transmitted after only one second of voice communication and an error occurs, new position data will be sent one second later. This rationale does not apply to command frames. In this case it is imperative that the information-bearing command frame get through once and only once. By incrementing the Sequence Number byte for each new acknowledged message it can be determined if the currently received message is a new message or a retransmitted message. This is accomplished by comparing the new Sequence Number byte to the last one. If the sequence byte is different, then the message is a new one. If the Sequence Number is the same, then the current received message is merely the previous command retransmitted. This can only happen if the message is received through uncorrupted but the acknowledgment is corrupted. The result of this generally described communication protocol is a fault tolerant communication link in which some errors are tolerated and some are corrected. The selective correction in a fully error protected, block oriented and numbered protocol is widely divergent from standard data communications doctrine.